package br.edu.ifrn.mb;

import java.util.List;

import br.edu.ifrn.dao.AreaAtuacaoDAO;
import br.edu.ifrn.dao.DiretoriaDAO;
import br.edu.ifrn.dominio.AreaAtuacao;
import br.edu.ifrn.dominio.Diretoria;
import br.edu.ifrn.exception.NegocioException;
import br.edu.ifrn.generic.GenericDAO;
import br.edu.ifrn.mb.generic.GenericCrudMB;
import br.edu.ifrn.util.FacesUtil;

public class ManageAreaAtuacao extends GenericCrudMB<AreaAtuacao> {
	
	private  String nomeAreaAtuacao;

	public ManageAreaAtuacao() {
		super();
		this.exibirTodosRegistrosAoPesquisar = false;
	}
	
	@Override
	public String incluir() {
		if(!FacesUtil.getSessionUser().getUsuario().isAdministrador()){
			this.dadosForm.setDiretoria(FacesUtil.getSessionUser().getDiretoria());
		}
		return super.incluir();
	}
	public void filtrar() throws NegocioException {
		if(FacesUtil.getSessionUser().getUsuario().isAdministrador()){
			this.dadosPesquisa = this.getDao().consultarTodos(" WHERE UPPER(areaAtuacao.nome) LIKE '%"+this.getNomeAreaAtuacao().toUpperCase()+"%'", "");
		}else{
			this.dadosPesquisa = this.getDao().consultarTodos(" WHERE UPPER(areaAtuacao.nome) LIKE '%"+this.getNomeAreaAtuacao().toUpperCase()+"%' AND areaAtuacao.diretoria.id = "+FacesUtil.getSessionUser().getDiretoria().getId(), "");
		}
	}
	public List<Diretoria> getDiretorias(){
		try {
			return new DiretoriaDAO().consultarTodos();
		} catch (NegocioException e) {
			FacesUtil.adicionarMensagemErro("Não foi possível consultar as diretorias");
			e.printStackTrace();
			return null;
		}
	}
	@Override
	protected GenericDAO<AreaAtuacao> getDao() {
		return new AreaAtuacaoDAO();
	}

	@Override
	public String getTitulo() {
		return "Área de Atuação";
	}

	public void setNomeAreaAtuacao(String nomeAreaAtuacao) {
		this.nomeAreaAtuacao = nomeAreaAtuacao;
	}

	public String getNomeAreaAtuacao() {
		return nomeAreaAtuacao;
	}
}
